Region-Based Dynamic Separation for STM Haskell

نویسندگان

  • Laura Effinger-Dean
  • Dan Grossman
چکیده

We present a design and implementation of dynamic separation in STM Haskell. Dynamic separation is a recent approach to software transactional memory (STM) that achieves strongly-atomic semantics with performance comparable to that of a weakly-atomic STM. STM Haskell, a lazy-versioning STM library for Haskell, previously supported strongly-atomic semantics via static separation, and we have found dynamic separation to be a natural extension of the library’s interface. Our implementation of dynamic separation has two novel extensions. First, we improve support for mutable data structures by providing protection regions, special objects that hold the protection state for multiple references. Second, we expand the set of protection states so that the interface is more expressive. We give a formal semantics for region-based dynamic separation and prove that a weak lazy-versioning STM supports strong atomicity (for a semantics without regions). We have evaluated the performance of our system on a suite of STM Haskell programs. We also discuss an alternate implementation that detects inconsistent protection states at run time.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

HiDb: A Haskell In-Memory Relational Database

We describe our experience implementing an in-memory relational database in Haskell that supports the standard CRUD (create, read, update, delete) operations while providing the requisite ACID (atomicity, consistency, isolation, durability) guarantees. We rely on Haskell’s STM module to provide atomicity and isolation. We use a combination of STM, Haskell’s type system, and dynamic type-checkin...

متن کامل

A Hybrid TM for Haskell

Much of the success of Haskell’s Software Transactional Memory (STM) can be attributed to the language’s type system and purity, which together allow transactions to be expressed safely and precisely. By construction, transactions are free from many of the perils that other systems must work hard to avoid. Users do have to work in a constrained environment as a result, but the popularity of Has...

متن کامل

Haskell Transaktionen in verteilten Systemen

Das Konstrukt der Transaktions-Variablen in Concurrent Haskell erleichtert die Entwicklung von nebenläufigen Anwendungen, indem es Deadlocks verhindert und erlaubt Programmteile einfach zu komponieren. In einer vorherigen Arbeit haben wir bereits eine Haskell-Version als Alternative zur existierenden lowlevel GHC-Bibliothek implementiert, die das optimistische verify-und-commit Konzept durch da...

متن کامل

Robust distributed software transactions for Haskell

This thesis motivates and develops a robust distributed Software Transactional Memory (STM) library for Haskell. Many real-life applications are distributed by nature. They either control geographically wide spread hardware resources or utilize redundant hardware components to minimize system failure. STM is an abstraction for synchronizing shared resources in concurrent applications. It helps ...

متن کامل

A Haskell-Implementation of STM Haskell with Early Conflict Detection

Software transactional memory treats operations on the shared memory in concurrent programs like data base transactions. STM Haskell integrates this approach in Haskell and provides combinators to build software transactions in a composable way. In previous work we introduced the process calculus CSHF as a formal model for a concurrent implementation of software transactional memory in Concurre...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2010